var $returnMoneyTableList = $('#returnMoneyTableList');

// 表格高度
var globalHeight;
$(function () {
    // 计算初始表格高度 = 浏览器高度 - 表格据浏览器顶部高度 - 主题底部padding+margin
    globalHeight = $(window).height() - $('#returnMoneyTableList').offset().top - 30 - 24;

    //管理系统进isSuperAdmin
    if ($.trim($('#qx').val()) == 0){
        isSuperAdmin();
    }
    isSuperCaiwu();
    returnMoneyList();

    // 初始化日期选择控件
    $('.date-input').datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });
    // // 到款日期
    // $('#arriveTimeStart').datepicker().on('changeDate', function(e) {
    //     $('#arriveTimeEnd').datepicker('setStartDate', $(e.target).val());
    // });
    // $('#arriveTimeEnd').datepicker().on('changeDate', function(e) {
    //     $('#arriveTimeStart').datepicker('setEndDate', $(e.target).val());
    // });
    // 初始化下拉菜单
    $('.filter-content select').selectpicker({
        noneSelectedText: '请选择',
        sanitize: true,
        size: 10
    });


    //加载全部公司信息
    loadAllCompanyList();
    //加载全部账号信息
    loadAllAccounts();
    //所属分公司
    loadAllCompanyList()

});

//防止表头与表格不对齐
$(window).resize(function () {
    $returnMoneyTableList.bootstrapTable('resetView');
});
/**
 * 功能：缩放页面重绘table高度
 * */
$(window).resize(debounce(resizeTable, 500));
function resizeTable() {
    globalHeight = $(window).height() - $('#returnMoneyTableList').offset().top - 30 - 24;
    $('#returnMoneyTableList').bootstrapTable('resetView', {height: globalHeight});
}

/*function getUsernames(){
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/account/getAccountListByUserName?userName=' + $('#cooperateInput').val(),
        cache : false,
        async : false,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '<option value="">请选择</option>';
                $.each(data.data, function(n, value) {
                    html += "<option value=" + value.userName + ">" +  value.userName + "</option>";
                });

                $('#names').html(html).selectpicker('refresh');
            } else {
                alert("请求失败");
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}*/


function toOrderInfo(value, row, index) {
    if(value == null) {
        return '<span href="JavaScript:void(0);">-</span>';
    }else {
        //onclick=\'OrderDetail(\"'+row.orderNumber+'")\'
        return '<a href="JavaScript:void(0);" onclick=\'OrderDetail(\"'+row.orderId+'")\'>'+value+'</a>';
    }
}

function OrderDetail(orderNumber) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '订单详情',
        url: "/front/finance/orderInfoByNumber?productOrderNumber="+orderNumber
    },true);
}
function returnMoneyList(){
    //先销毁表格
    $returnMoneyTableList.bootstrapTable('destroy');
    $returnMoneyTableList.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/returnMoney/selectReturnMoneyList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        serverSort: true,
        uniqueId: 'returnMoneyId',
        idField: 'returnMoneyId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: globalPageList,//可供选择的每页的行数
        // height:200,
        height: globalHeight,
        fixedColumns: true,     // 冻结列
        fixedNumber: 0,         // 左侧固定列
        // fixedRightNumber: 0,    // 右侧固定列

        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'returnMoneyId',visible: false},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '60', formatter: indexFormat},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '产品号', field: 'finishOrderProductNum', align: 'left', valign: 'middle'},
            {title: '到款时间',field: 'arriveTime', sortable: true,align: 'left', valign: 'middle'},
            {title: '到款金额',field: 'arriveMoney', sortable: true,align: 'left', valign: 'middle'},
            {title: '到款单位名称', field: 'arriveUnitName', sortable: true,align: 'left', valign: 'middle'},
            {title: '到款编号', field: 'arriveNum', sortable: true, align: 'left',valign: 'middle'},
            {title: '到款方式', field: 'arriveMethod', sortable: true,align: 'left',valign: 'middle',
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '银行汇款';
                    }else if (value == 1){
                        html += '现金';
                    }else if (value == 2){
                        html += '余额支付';
                    }else if (value == 3){
                        html += '线上支付';
                    }else if (value == 4){
                        html += '转入额支付';
                    }
                    return html;
                }
            },
            {title: '到款是否作废', field: 'arriveIsAbolish', sortable: true,align: 'left',valign: 'middle',visible :false,
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '否';
                    }else if (value == 1){
                        html += '是';
                    }
                    return html;
                }
            },
            {title: '付款单位', field: 'paymentUnitName', sortable: true,align: 'left', valign: 'middle'},
            {title: '付款账号', field: 'paymentAccount', sortable: true,align: 'left', valign: 'middle'},
            /*{title: '是否挂起', field: 'contractStatus',sortable: true,align: 'left',valign: 'middle',
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '否';
                    }else if (value == 1){
                        html += '是';
                    }
                    return html;
                }
            },
            {title: '续费合同开始日期', field: 'renewContractStartTime',sortable: true,align: 'left',valign: 'middle',visible :false},
            {title: '业绩换算比例', field: 'scoreConvertRatio',sortable: true,align: 'left',valign: 'middle',visible :false,
                formatter: function (value) {
                    let html = value+"%";
                    if (value == null) {
                        html = '';
                    }
                    return html;
                }
            },
            {title: '业绩金额', field: 'scoreMoney', sortable: true,align: 'left',valign: 'middle',visible :false},
            {title: '会员类型', field: 'vipType', sortable: true, align: 'left', valign: 'middle',
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '会员';
                    }else if (value == 1){
                        html += '';
                    }
                    return html;
                }
            },
            {title: '是否记录会员业绩', field: 'isRecordScore',sortable: true,align: 'left',valign: 'middle',visible :false,
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '否';
                    }else if (value == 1){
                        html += '是';
                    }
                    return html;
                }
            },
            {title: '是否退款', field: 'isBack',align: 'left',sortable: true,valign: 'middle',visible :false,
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '否';
                    }else if (value == 1){
                        html += '是';
                    }
                    return html;
                }
            },
            {title: '退款日期', field: 'backDate', sortable: true, align: 'left', valign: 'middle',visible :false},
            {title: '提成发放状态', field: 'royaltyStatus', sortable: true, align: 'left', valign: 'middle',visible :false,
                formatter: function (value) {
                    let html = '';
                    if (value == 1) {
                        html += '全部发放';
                    }else if (value == 2){
                        html += '部分发放';
                    }else if (value == 3){
                        html += '未发放';
                    }
                    return html;
                }
            },
            {title: '提成金额', field: 'royaltyMoney',sortable: true,align: 'left', valign: 'middle',visible :false},
            {title: '提成录入时间', field: 'royaltyRecordTime',sortable: true,align: 'left', valign: 'middle'},
            {title: '是否作废', field: 'isAbolish',sortable: true,align: 'left', valign: 'middle',
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '否';
                    }else if (value == 1){
                        html += '是';
                    }
                    return html;
                }
            },
            {title: '来源渠道', field: 'source',sortable: true,align: 'left', valign: 'middle',visible :false},*/
            {title: '所属合同', field: 'contractId',sortable: true,align: 'left', valign: 'middle'},
            /*{title: '所属客户', field: 'customerName',sortable: true,align: 'left', valign: 'middle'},*/
            {title: '所属订单', field: 'orderId',sortable: true,align: 'left', valign: 'middle', formatter: toOrderInfo},
            {title: '流水号', field: 'serial', align: 'left', valign: 'middle'},
            {title: '业务员名称', field: 'salesmanName',sortable: true,align: 'left', valign: 'middle'},
            {title: '所属分公司', field: 'filialeName',sortable: true,align: 'left', valign: 'middle',visible :false},
            /*{title: '是否检验', field: 'isCheck',sortable: true,align: 'left', valign: 'middle',visible :false,
                formatter: function (value) {
                    let html = '';
                    if (value == 0) {
                        html += '否';
                    }else if (value == 1){
                        html += '是';
                    }
                    return html;
                }
            },*/
            {title: '备注', field: 'remark',align: 'left',sortable: true, valign: 'middle',visible :false},
            {title: '创建人', field: 'createByName',sortable: true,align: 'left', valign: 'middle',visible :false},
            {title: '创建时间', field: 'createTm', sortable: true, align: 'left', valign: 'middle'},
            {title: '更新人', field: 'updateByName',sortable: true, align: 'left', valign: 'middle',visible :false},
            {title: '更新时间', field: 'updateTm', sortable: true,align: 'left', valign: 'middle',visible :false},
            /*{title: '操作', field:'operate', align:'left', width: '96'},*/
        ],
        responseHandler: function (result) {
            if(result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            // // table列可拖动宽度
            // $('.JCLRgrips').remove();
            // $('#customerProductTableList').css({
            //     minWidth: $('#customerProductTableList').width()
            // }).colResizable({
            //     resizeMode: 'overflow',
            //     liveDrag: true,
            //     gripInnerHtml: "<div class='grip'></div>",
            //     draggingClass: "dragging",
            //     disabledColumns: [0, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],      // 禁止拖动的列
            //     postbackSafe: true,                                         // 刷新后保持拖动的宽度
            //     partialRefresh: true,                                       // 刷新表格之后继续保持可拖动功能
            //     flush: true,
            //     minWidth: 80,
            //     /*onResize: function () {
            //     }*/
            // });
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });

}

//选择显示或隐藏table
function hideOrShowTable(tableName,status) {
    if (status.checked){
        $returnMoneyTableList.bootstrapTable('showColumn', tableName);
    }else{
        $returnMoneyTableList.bootstrapTable('hideColumn', tableName);
    }

}


function advancedQueryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    params.isAdmin = $.trim($('#qx').val());//权限

    //高级搜索条件
    params.customerName = $.trim($('#customerName').val());//客户名称
    params.contractCode = $.trim($('#contractCode').val());//合同编号
    params.orderCode = $.trim($('#orderCode').val());//订单编号
    params.orderName = $.trim($('#orderName').val());//所属订单
    params.createName = $.trim($('#createName').val());//创建人
    params.paymentAccount = $.trim($('#paymentAccount').val());//付款账号
    //搜索条件
    params.arriveTimeStart = $.trim($('#arriveTimeStart').val());//到款开始时间
    params.arriveTimeEnd = $.trim($('#arriveTimeEnd').val());//到款结束时间
    params.arriveMoneyStart = $.trim($('#arriveMoneyStart').val());//到款金额起
    params.arriveMoneyEnd = $.trim($('#arriveMoneyEnd').val());//最大到款金额
    params.vipType = $.trim($('#vipType').val());//会员类型
    params.companyId = $.trim($('#compName').val());//公司
    params.salesmanName = $.trim($('#salesmanNameSearch').val());//业务员

    params.companyId = $.trim($('#companySelect').val());//所属分公司
    params.companyType = 1;
    params.dateType = $('#dateType').val()
    return params;
}


function queryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    params.isAdmin = $.trim($('#qx').val());//权限
    //搜索条件
   /* params.arriveTimeStart = $.trim($('#arriveTimeStart').val());//到款开始时间
    params.arriveTimeEnd = $.trim($('#arriveTimeEnd').val());//到款结束时间
    params.arriveMoneyStart = $.trim($('#arriveMoneyStart').val());//到款金额起
    params.arriveMoneyEnd = $.trim($('#arriveMoneyEnd').val());//最大到款金额
    params.vipType = $.trim($('#vipType').val());//会员类型
    params.companyId = $.trim($('#compName').val());//公司
    params.accountId = $.trim($('#salesmanName').val());//业务员*/
    params.salesmanName = $.trim($('#salesmanNameSearch').val());//业务员
    params.companyType = 1;
    params.dateType = $('#dateType').val()
    return params;
}

function searchReturnMoneyList(type) {
    if(type == 'all'){
        $('.all').addClass('active-second');
        $('.lastMonth').removeClass('active-second');
        $('.month').removeClass('active-second');
        $("#dateType").val("all");
        $returnMoneyTableList.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: queryParams});
    }else if(type == 'lastMonth'){
        $('.lastMonth').addClass('active-second');
        $('.all').removeClass('active-second');
        $('.month').removeClass('active-second');
        $("#dateType").val("lastMonth");
        $returnMoneyTableList.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: queryParams});
    }else if(type == 'month'){
        $('.month').addClass('active-second');
        $('.all').removeClass('active-second');
        $('.lastMonth').removeClass('active-second');
        $("#dateType").val("month");
        $returnMoneyTableList.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: queryParams});
    }


    if (type === 1) {//普通条件查询
        // $returnMoneyTableList.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: queryParams});
        $returnMoneyTableList.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: advancedQueryParams});
        // 点击搜索重置表单并收起高级搜索 需传入高级搜索id #filterContent
        $('#filterContent').collapse('hide').on('hidden.bs.collapse', function () {
        //     resetOrderQueryParams('#filterContent');
        });
    } else if (type == 2) {//高级搜索条件查询
        $('#orderNumberMin').val('');
        $returnMoneyTableList.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: advancedQueryParams});
    }
}


//管理系统隐藏compNamediv
function isSuperAdmin(){
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/returnMoney/isSuperAdmin',
        cache : false,
        async : false,
        success: (function (data) {
            if (!data.data) {
                document.getElementById("compNamediv").style.display="none";

            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

//判断是否隐藏所属分公司
function isSuperCaiwu(){
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/order/isSuperCaiwu',
        cache : false,
        async : false,
        success: (function (data) {
            if (!data.data) {
                document.getElementById("companySelectDiv").style.display="none";

            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

/**
 * 加载全部公司信息(全国公有池分配--公司下拉)
 */
function loadAllCompanyList() {
    $.getJSON("/sysCompany/selectCompanies", function (data) {
        if (data.code == '000000') {
            var companyOptionHtml = '<option value="">全部</option>';
            data.data.map(function (item) {
                companyOptionHtml += '<option value="' + item.companyId + '">' + item.companyName + '</option>';
            });
            $("#compName").html("");
            $('#compName').append(companyOptionHtml);
            $('#compName').selectpicker('refresh');
            loadPersonByCompanyId(data.data[0].companyId);
        }
    });
    // 当公司下拉改变时级联人员下拉信息
    $("select[id*='compName']").on("change", function () {
        if($(this).val()){
            loadPersonByCompanyId($(this).val());
        } else {
            loadAllAccounts();
        }
    });
}

/**
 * 加载全部账号信息
 */
function loadAllAccounts(){
    $.getJSON("/account/getAllAccountList", function (data) {
        if (data.code == '000000') {
            var userNameOptionHtml = '<option value="">全部</option>';
            data.data.map(function (item) {
                userNameOptionHtml += '<option value="' + item.accountId + '">' + item.userName + '</option>';
            });
            $("#salesmanName").html("");
            $('#salesmanName').append(userNameOptionHtml);
            $('#salesmanName').selectpicker('refresh');
        }
    });
}

/**
 * 根据公司ID查询人员信息
 * @param companyId
 */
function loadPersonByCompanyId(companyId) {
    $.getJSON("/account/getAccountListByCompanyId?companyId=" + companyId, function (data) {
        if (data.code == '000000') {
            var userNameOptionHtml = '<option value="">全部</option>';
            data.data.map(function (item) {
                userNameOptionHtml += '<option value="' + item.accountId + '">' + item.userName + '</option>';
            });
            $("#salesmanName").html("");
            $('#salesmanName').append(userNameOptionHtml);
            $('#salesmanName').selectpicker('refresh');
        }
    });
}


//重置高级查询
function clearAllData() {
    $('#customerName').val('');
    $('#contractCode').val('');
    $('#orderCode').val('');
    $('#orderName').val('');
    $('#createName').val('');
    $('#paymentAccount').val('');
    $('#arriveTimeStart').val('');
    $('#arriveTimeEnd').val('');
    $('#arriveMoneyStart').val('');
    $('#arriveMoneyEnd').val('');
    $('#vipType').val('');
    $('.filter-content select').val('').selectpicker('refresh');//重置--高级筛选select框
    returnMoneyList()
}

function indexFormat(value, row, index) {
    return index + 1;
}

function loadAllCompanyList() {
    $.getJSON("/company/getCompanyList", function (data) {
        if (data.code == '000000') {
            var companyOptionHtml = '<option value="">请选择</option>';
            data.data.map(function (item) {
                companyOptionHtml += '<option value="' + item.companyId + '">' + item.companyName + '</option>';
            });
            $("#companySelect").html("");
            $('#companySelect').append(companyOptionHtml);
            $('#companySelect').selectpicker('refresh');
            // loadPersonByCompanyId(data.data[0].companyId);
        }
    });
    // 当公司下拉改变时级联人员下拉信息
    // $("select[id*='companySelect']").on("change", function () {
    //     if($(this).val()){
    //         loadPersonByCompanyId($(this).val());
    //     } else {
    //         loadAllAccounts();
    //     }
    // });
}

$('#myButton').on('click', function () {
    var $btn = $(this).button('loading');

   var paramsData = {
       isAdmin : $.trim($('#qx').val()),//权限

       //高级搜索条件
       customerName : $.trim($('#customerName').val()),//客户名称
       contractCode : $.trim($('#contractCode').val()),//合同编号
       orderCode : $.trim($('#orderCode').val()),//订单编号
       orderName : $.trim($('#orderName').val()),//所属订单
       createName : $.trim($('#createName').val()),//创建人
       paymentAccount : $.trim($('#paymentAccount').val()),//付款账号
       //搜索条件
       arriveTimeStart : $.trim($('#arriveTimeStart').val()),//到款开始时间
       arriveTimeEnd : $.trim($('#arriveTimeEnd').val()),//到款结束时间
       arriveMoneyStart : $.trim($('#arriveMoneyStart').val()),//到款金额起
       arriveMoneyEnd : $.trim($('#arriveMoneyEnd').val()),//最大到款金额
       vipType : $.trim($('#vipType').val()),//会员类型
       companyId : $.trim($('#compName').val()),//公司
       salesmanName : $.trim($('#salesmanNameSearch').val()),//业务员

       companyId : $.trim($('#companySelect').val()),//所属分公司
       companyType : 1,
       dateType : $('#dateType').val()
   }
    // json转url参数
    var parseParam = function(param, key) {
        var paramStr = '';
        if (param instanceof String || param instanceof Number || param instanceof Boolean) {
            paramStr += '&' + key + '=' + param;
        } else {
            $.each(param, function(i) {
                var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
                paramStr += '&' + parseParam(this, k);
            });
        }
        return paramStr.substr(1);
    };
    var that = this;
    paramsData = parseParam(paramsData);
    var page_url = '/returnMoney/exportReturnMoneyList?'+paramsData;
    var req = new XMLHttpRequest();
    req.open("get", page_url, true);
    req.responseType = "blob";
    req.onreadystatechange = function () {
        if (req.readyState === 4 && req.status === 200) {
            // var filename = $(that).data('filename');
            if (typeof window.chrome !== 'undefined') {
                // Chrome version
                var link = document.createElement('a');
                link.href = window.URL.createObjectURL(req.response);
                link.download = '回款统计.xlsx';
                link.click();
            } else if (typeof window.navigator.msSaveBlob !== 'undefined') {
                // IE version
                var blob = new Blob([req.response], { type: 'application/force-download' });
                window.navigator.msSaveBlob(blob, '回款统计.xlsx');
            } else {
                // Firefox version
                var file = new File([req.response], '回款统计.xlsx', { type: 'application/force-download' });
                window.open(URL.createObjectURL(file));
            }
            $btn.button('toggle');
            $btn.button('reset');
        }
    };
    req.send();
})


